/**
 * js扩展工具类
 * 
 */

var sy = $.extend({}, sy);/* 全局对象 */

(function($) {

	/**
	 * 增加formatString功能
	 * 
	 * 使用方法：sy.fs('字符串{0}字符串{1}字符串','第一个变量','第二个变量');
	 */
	sy.fs = function(str) {
		for ( var i = 0; i < arguments.length - 1; i++) {
			str = str.replace("{" + i + "}", arguments[i + 1]);
		}
		return str;
	};

	/**
	 * 增加命名空间功能
	 * 
	 * 使用方法：sy.ns('jQuery.bbb.ccc','jQuery.eee.fff');
	 */
	sy.ns = function() {
		var o = {}, d;
		for ( var i = 0; i < arguments.length; i++) {
			d = arguments[i].split(".");
			o = window[d[0]] = window[d[0]] || {};
			for ( var k = 0; k < d.slice(1).length; k++) {
				o = o[d[k + 1]] = o[d[k + 1]] || {};
			}
		}
		return o;
	};

	/**
	 * 获得项目根路径
	 * 
	 * 使用方法：sy.bp();
	 */
	sy.bp = function() {
		var curWwwPath = window.document.location.href;
		var pathName = window.document.location.pathname;
		var pos = curWwwPath.indexOf(pathName);
		var localhostPaht = curWwwPath.substring(0, pos);
		var projectName = pathName.substring(0, pathName.substr(1).indexOf('/') + 1);
		return (localhostPaht + projectName);
	};

	/**
	 * 对Date的扩展
	 * 
	 * 将 Date 转化为指定格式的String
	 * 
	 * 月(M)、日(d)、12小时(h)、24小时(H)、分(m)、秒(s)、周(E)、季度(q) 可以用 1-2 个占位符
	 * 
	 * 年(y)可以用 1-4 个占位符，毫秒(S)只能用 1 个占位符(是 1-3 位的数字)
	 * 
	 * (new Date()).pattern("yyyy-MM-dd hh:mm:ss.S") ==> 2006-07-02 08:09:04.423
	 * 
	 * (new Date()).pattern("yyyy-MM-dd E HH:mm:ss") ==> 2009-03-10 二 20:09:04
	 * 
	 * (new Date()).pattern("yyyy-MM-dd EE hh:mm:ss") ==> 2009-03-10 周二 08:09:04
	 * 
	 * (new Date()).pattern("yyyy-MM-dd EEE hh:mm:ss") ==> 2009-03-10 星期二 08:09:04
	 * 
	 * (new Date()).pattern("yyyy-M-d h:m:s.S") ==> 2006-7-2 8:9:4.18
	 */
	Date.prototype.pattern = function(fmt) {
		var o = {
			"M+" : this.getMonth() + 1, /* 月份 */
			"d+" : this.getDate(), /* 日 */
			"h+" : this.getHours() % 12 == 0 ? 12 : this.getHours() % 12, /* 小时 */
			"H+" : this.getHours(), /* 小时 */
			"m+" : this.getMinutes(), /* 分 */
			"s+" : this.getSeconds(), /* 秒 */
			"q+" : Math.floor((this.getMonth() + 3) / 3), /* 季度 */
			/* 毫秒 */
			"S" : this.getMilliseconds()
		};
		var week = {
			"0" : "\u65e5",
			"1" : "\u4e00",
			"2" : "\u4e8c",
			"3" : "\u4e09",
			"4" : "\u56db",
			"5" : "\u4e94",
			"6" : "\u516d"
		};
		if (/(y+)/.test(fmt)) {
			fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));
		}
		if (/(E+)/.test(fmt)) {
			fmt = fmt.replace(RegExp.$1, ((RegExp.$1.length > 1) ? (RegExp.$1.length > 2 ? "\u661f\u671f" : "\u5468") : "") + week[this.getDay() + ""]);
		}
		for ( var k in o) {
			if (new RegExp("(" + k + ")").test(fmt)) {
				fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
			}
		}
		return fmt;
	};

	/**
	 * IE6背景图片缓存
	 */
	try {
		document.execCommand("BackgroundImageCache", false, true);
	} catch (e) {
	}

	/**
	 * 生成UUID
	 */
	sy.UUID = function() {
		var s = [], itoh = '0123456789ABCDEF';
		for ( var i = 0; i < 36; i++)
			s[i] = Math.floor(Math.random() * 0x10);
		s[14] = 4;
		s[19] = (s[19] & 0x3) | 0x8;
		for ( var i = 0; i < 36; i++)
			s[i] = itoh[s[i]];
		s[8] = s[13] = s[18] = s[23] = '-';
		return s.join('');
	};

	$.ajaxSetup({
		statusCode : {
			401 : function() {
				$.messager.alert('错误','未授权','error');
			},
			404 : function() {
				$.messager.alert('错误','请求页面或者路径未找到','error');
			},
			408 : function() {
				$.messager.alert('错误','请求超时','error');
			},
			500 : function() {
				$.messager.alert('错误','系统内部错误','error');
			},
			503 : function() {
				$.messager.alert('错误','服务已停止','error');
			},
			10000 : function() {
				$.messager.alert('错误','登录超时或未登录,请重新登录系统','error');
			},
			10001 : function() {
				$.messager.alert('错误','您没有权限操作此功能','error');
			}
		}
	});

})(jQuery);

$(function() {
	/**
	 * 显示AJAX开始时的提示信息
	 */
	sy.showLoadingDiv = function() {
		var loadingDiv = $('#_AJAXLOADINGDIV_');
		if (loadingDiv.length < 1) {
			$("body").append('<div id="_AJAXLOADINGDIV_" style="z-index: 9999999; position: absolute; top: 0px; right: 0px; background-color:#FFFEE6; color:#8F5700; padding:5px;"><div>数据处理中，请稍候。。。。</div></div>');
		} else {
			loadingDiv.show();
		}
	};
	/**
	 * AJAX结束时隐藏提示信息
	 */
	sy.hideLoadingDiv = function() {
		$('#_AJAXLOADINGDIV_').fadeOut(500);
	};
	/**
	 * 为jQuery的ajax提供等待提示
	 */
	$(document).ajaxStart(sy.showLoadingDiv).ajaxStop(sy.hideLoadingDiv);
});